
public class C {

	void foo() {
		switch (a + b + c /* + d */
				+ e + f ) {
		case 1,2,99999,5,6:
		method1();
			break;
		case 999,998,997:
		case 996,995, //
				994:
		method2();
		default:
		method3();
		}

		switch ("a" + "b" + "c" //
				+ something ) {
		case "abc1" -> System.out.println("1");
		case "abc2",/* ??? */ "abc3","abc4" -> System.out.println("234");
		case "def2", /* ??? */
				"def3","def4" ->
			System.out.println("def");
		case "abc5","abc6" -> {
		}
		case "abc7" -> {
			System.out.println("7");
			return;
		}
		default -> System.out.println("?");
		}

		int value = switch (ABC ) {
		case A:
			yield 1;
		case B:
		System.out.println("!!!");
		return;
		case BB:
		;
		case C,D,E,F,G:
		case H,I,J: {
			System.out.println("@@@");
			yield 3454366;
		}
		default:
			yield 6;
		};

		Object value2 = switch (a.b.c.d(e.f.g.h()) ) {
		case a -> {
			System.out.println("aaaaaaa");
			yield "";
		}
		case b + c,d.e,f("aaaaaaaaaaaa"//
				+ //
				"bbbbbbbbb"//
		),(33),aaa = bbb + ccc,new int[] { 1, 2, aaa },AAA::BBB -> (Runnable) () -> f();
		// $$$$
		case new Object() {
			String toString() {
				return "";
			}
		} -> ABCD;
		case null -> {
			return null;
		}
		case something -> //
			null;
		default -> throw new RuntimeException("unsupported");
		};
	}
}
